package org.dromara.system.domain.bo;

import org.dromara.system.domain.AppSupplierDetail;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 供应商详情业务对象 app_supplier_detail
 *
 * @author Lion Li
 * @date 2025-09-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = AppSupplierDetail.class, reverseConvertGenerate = false)
public class AppSupplierDetailBo extends BaseEntity {

    /**
     * 主键ID
     */
    private Long id;


    /**
     * 租户ID
     */
//    @NotBlank(message = "租户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tenantId;

    /**
     * 公司id
     */
    private String companyId;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 审核状态 0审核中 1通过 2失败
     */
    private Long auditStatus;

    /**
     * 供应商代号
     */
    private String supplierCode;

    /**
     * 纳税识别号
     */
    @NotBlank(message = "纳税识别号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String taxpayerId;

    /**
     * 公司规模
     */
    @NotBlank(message = "公司规模不能为空", groups = { AddGroup.class, EditGroup.class })
    private String companyScale;

    /**
     * 开户行
     */
    @NotBlank(message = "开户行不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bankName;

    /**
     * 开户账号
     */
    @NotBlank(message = "开户账号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bankAccount;

    /**
     * 是否开具增值税发票 0否 1是
     */
    @NotNull(message = "是否开具增值税发票 0否 1是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long hasVatInvoice;

    /**
     * 专票或普票税率(%)
     */
    @NotNull(message = "专票或普票税率(%)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long vatRate;

    /**
     * 注册地址
     */
    @NotBlank(message = "注册地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String registeredAddress;

    /**
     * 法人代表
     */
    @NotBlank(message = "法人代表不能为空", groups = { AddGroup.class, EditGroup.class })
    private String legalRepresentative;

    /**
     * 手机号
     */
    @NotBlank(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;


    /**
     * 验证码
     */
    @NotBlank(message = "验证码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String code;

    /**
     * 经营信息
     */
    @NotBlank(message = "经营信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String businessInfo;

    /**
     * 不干胶
     */
    @NotNull(message = "不干胶不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long stickyLabel;

    /**
     * 料瓦楞纸
     */
    @NotNull(message = "料瓦楞纸不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long corrugatedPaper;

    /**
     * 蓝晶膜
     */
    @NotNull(message = "蓝晶膜不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long blueFilm;

    /**
     * 瓜子袋
     */
    @NotNull(message = "瓜子袋不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sunflowerBag;

    /**
     * 淋膜
     */
    @NotNull(message = "淋膜不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long coatedPaper;

    /**
     * 其他
     */
//    @NotNull(message = "其他不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long otherMaterial;

    /**
     * 备注
     */
//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
